package Mylist;

import java.util.*;

public class Test1 {
    public static void main(String[] args) {

        ArrayList<Integer> integers=new ArrayList<>();
        integers.add(1);
        integers.add(2);
        integers.add(3);

        ArrayList<Integer> integers1=new ArrayList<>();
        integers1.add(9);
        integers1.addAll(integers);
        System.out.println(integers);
        System.out.println(integers1);

        Collection<Number> collection=new ArrayList<>();
        Collection<Number> collection2=new LinkedList<>();
        Collection<Number> collection3=new TreeSet<>();


        for (Integer i:integers1) {
            System.out.print(i+" ");
        }
        System.out.println();

        // 迭代器: 跟foreach差不多，都是遍历数组
        Iterator<Integer> it=integers1.iterator();
        while(it.hasNext()){
            System.out.print(it.next()+" ");
        }

/*
        List<Integer> list=integers1.subList(1,3);
        System.out.println(list);

        integers1.set(2,99);

        System.out.println(integers1);
        System.out.println(list);
        此处运行结果list 与 integers1 中 1-2下标值一样
        说明：subList方法并不是开辟一个新空间来存储，而是直接指向原空间
        */
    }







    public static void main02(String[] args) {
        ArrayList<Integer> arrayList=new ArrayList<>();
        /*arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);

        System.out.println(arrayList);*/

        /*  构造方法ArrayList(Collection<? extends E> c)
            首先，传入的数据要实现 Collection 接口， ？代表 传入的数据要么是E 本身要么是E的子类
            比如：
            ArrayList 实现了Collection 接口
            ArrayList< ? > arrayList=new ArrayList<>();
            ArrayList< E > arrayList1=new ArrayList<>(arrayList);
         */
        ArrayList<Number> arrayList1=new ArrayList<>(arrayList);
        arrayList.clear();
    }







    public static void main01(String[] args) {
        MyArrayList myArrayList=new MyArrayList();

        myArrayList.add(1);
        myArrayList.add(2);
        myArrayList.add(3);
        myArrayList.add(2,39);
        myArrayList.add(5,39);

        myArrayList.display();

        myArrayList.set(3,88888);
        myArrayList.display();


        myArrayList.remove(1);
        myArrayList.display();

        System.out.println(myArrayList.size());
    }
}
